/**
 * 将栈从顶到底按小大到小顺序排序，只需申请一个栈
 * 可申请变量但是不能使用额外数据结构
 * 
 * 求排序
 * 
 * 思路：
 *      弹出到另一个help栈，栈缓存。
 *      cur<help顶，压入
 *      ===》 保证help栈永远是 逆序 栈顶永远最小   
 *      ===》 help倒入原栈才方便
 * 
 *      cur>help顶   
 *      ==> 将栈help元素依次弹出 直至cur《= 栈顶
 */

let arr = [4,1,2,3,5]///==> 5 4 3 2 1
function sortStackbyStack(stack){
    let help = [];
    while(stack.length>0){
        let cur  = stack.pop();
        // push之前 先保证help栈的合乎情理性
        while(help.length>0&&help[help.length-1]>cur){
            stack.push(help.pop())
        }
        help.push(cur)
    }
    while(help.length>0){
        stack.push(help.pop())
    }
}
sortStackbyStack(arr);
console.log(arr)